

#include "global_config.h"
#include "drivers.h"
#include "public_datas.h"
#include "apps.h"

#define TAG "MAIN"

// static uint8_t it_flag = 0;

// static int it_pin = 0;

// void bcb(btask_event_t *e)
// {
//     drv_adc_update_temp_soc();

// esay_logi(TAG, "soc:%d,volt:%d,temp:%d", drv_public_get_datas()->bat_soc, drv_public_get_datas()->bat_volt, drv_public_get_datas()->temp);

// static uint8_t i = 0;
// i++;
// esay_logp("tic%d\n", i);
// esay_logi(TAG, "device sleep start");
// btask_delay(10);

// LowPower_Sleep(RB_PWR_RAM30K); // 只保留30+2K SRAM 供电
// HSECFG_Current(HSE_RCur_100);

// esay_logi(TAG, "INIT PIN :%d", it_pin);
// }

__HIGH_CODE
__attribute__((noinline)) void main_loop()
{
    for (;;)
    {
        // DelayMs(1000);
        // esay_logd("MAIN","%lu",drv_clock_get_sys_tic());
        // if (uart_cmd_available())
        // {
        //     /// cmd
        //     if (uart_cmd_cmp("reset", 5))
        //         restart_sys(restart_sys_iap);
        //     else if (uart_cmd_cmp("list", 4))
        //     {
        //         uint8_t buffer[24];
        //         uart_cmd_get_string((char *)buffer);
        //         PRINT("--------------------------list %02X,%02X,%02X,%02X,%02X,%02X\n", buffer[4], buffer[5], buffer[6], buffer[7], buffer[8], buffer[9]);

        //         drv_ble_add_white_list(&buffer[4]);
        //     }
        //     else
        //     {
        //         char buffer[24];
        //         uart_cmd_get_string(buffer);
        //         esay_logi(TAG, "other cmd:%s\n", buffer);
        //     }

        //     uart_cmd_clear();
        // }
        TMOS_SystemProcess();
        // key_app_handler(); // 按键管理app

#if 0
        uint8_t unlock_sta = 0;
        if (gpio_get_level(BTN_POWER) == 0)
        {
            // while (gpio_get_level(BTN_POWER) == 0)
            //     ;
            unlock_sta = !unlock_sta;
            gpio_set_level(SF32_EN, unlock_sta);
            // if (unlock_sta)
            // {
            //     esay_logi(TAG, "lock");
            //     drv_key_send_event(KEY_EVENT_LOCK);
            //     // gpio_set_mode(KEY_UNLOCK, GPIO_MODE_OUT_PUSHPULL_5mA);
            //     // DelayMs(100);
            //     // gpio_set_mode(KEY_UNLOCK, GPIO_MODE_IN_FLOAT);
            // }
            // else
            // {
            //     esay_logi(TAG, "unlock");
            //     drv_key_send_event(KEY_EVENT_UNLOCK);
            //     // gpio_set_mode(KEY_LOCK, GPIO_MODE_OUT_PUSHPULL_5mA);
            //     // DelayMs(100);
            //     // gpio_set_mode(KEY_LOCK, GPIO_MODE_IN_FLOAT);
            // }
        }
#endif
    }
}

int main()
{
    // gpio_set_mode(KEY_POWER, GPIO_MODE_OUT_PUSHPULL_5mA);
    gpio_set_mode(SF32_EN, GPIO_MODE_OUT_PUSHPULL_5mA);
    gpio_set_level(SF32_EN, 0);
    gpio_set_mode(UART_RTS, GPIO_MODE_IN_PULLDOWN);
    gpio_set_mode(UART_SF32_RXD, GPIO_MODE_IN_PULLDOWN);
    gpio_set_mode(UART_SF32_TXD, GPIO_MODE_IN_PULLDOWN);


    public_datas_init();
    drivers_install();
    apps_install();

    // btask_creat_ms(1000, bcb, btask_infinite, NULL, NULL);

    // btask_delay(100);

    // esay_logi(TAG,"HELLO QFTEK");

    main_loop();
}
